Engagement tracking in computer data networks

ABSTRACT

An improved approach to tracking media playback includes tracking logic that is based on abandonment indicators. An abandonment indicator is detected during media playback, such as a user interaction with a computing device that is detected prior to ceasing playback of the media content. Tracking messages are reduced, suppressed, or suspended until an abandonment indicator is detected. After an abandonment indicator is detected, the system quickens, releases, or restart sending tracking messages to a collection system.

RELATED APPLICATIONS

Any and all applications for which a domestic priority claim isidentified in the Application Data Sheet as filed with the presentapplication are hereby incorporated by reference under 37 CFR 1.57.

BACKGROUND

Some content providers, such as websites and media streaming services,can obtain the results of analytics regarding engagements or views oftheir content. User analytics can include any type of data regardingengagements or views of content from the content providers, among othertypes of data. There are different approaches to gathering analyticsdata, which include using tracking messages or employing the use oftags.

BRIEF DESCRIPTION OF THE DRAWINGS

Throughout the drawings, reference numbers are re-used to indicatecorrespondence between referenced elements. The drawings are provided toillustrate embodiments of the features described herein and not to limitthe scope thereof.

FIG. 1 depicts an embodiment of a computing environment that providesaccess to an analytics system that includes a tag management system.

FIGS. 2A-2B depict an example end user system.

FIG. 3A depicts an embodiment of an abandonment based engagementprocess.

FIG. 3B depicts an embodiment of another abandonment based engagementprocess.

FIG. 3C depicts an embodiment of yet another abandonment basedengagement process.

FIGS. 4A-4B depict example heartbeat tracking.

FIGS. 5A-5B depict example abandonment-based engagement tracking

FIGS. 6A-6B depict additional example abandonment-based engagementtracking

FIG. 7 illustrates an example computer system configuration on which maybe implemented various embodiments of systems and methods in accordancewith the disclosure.

DETAILED DESCRIPTION I. Engagement Tracking Introduction

Some content providers are interested in how much of a video a user haswatched. For example, sometimes a user does not watch the entire videoand some content providers are interested in how much of thepartially-watched video the user consumed. Tracking systems andsolutions can be used to monitor how much of a media item, such as avideo, a user has consumed. Such tracking systems can be embedded withinmedia playback applications. During media playback, the tracking systemscan send tracking messages to a collection system that maintains thetracking data.

Tracking of media content playback may be difficult because a user canabruptly cease playback of media content. For example, during mediaplayback, a user can close a media playback application or otherwisekill a media playback process. Such abrupt cancellations can prohibitthe media playback application or process from sending a trackingmessage to the collection system. Some traditional systems for trackingconsumption of video content send tracking messages at regular intervalsduring video playback to address this issue of abrupt cancellations.Some tracking systems preemptively send a tracking message to acollection system, such as at the regular interval, before the abruptcancellation. Sending tracking messages at intervals may be referred toas heartbeat tracking. However, disadvantages of heartbeat tracking caninclude increased bandwidth usage, increased battery usage, or increasedusage of computing resources due to the regular intervals that theheartbeat tracking messages are generated and sent.

An aspect of at least one of the inventions disclosed herein includesthe realization that tracking message intervals can be strategicallychanged so as to decrease bandwidth usage, decrease battery usage, ordecrease the usage of computing resources. An improved approach totracking media playback can include tracking logic that is based on theassumption that there are indicators that can be detected, whichindicate an increased likelihood that a user will proximately ceaseconsuming media content and that until such indicators are detected,tracking messages can be suppressed.

The present disclosure describes embodiments, systems, methods, andnon-transitory computer readable media that can efficiently track userconsumption of media content. In some situations, a user may consumemedia content by passively viewing or listening to the content withoutinteracting with the media playback device. Such lack of interactionduring media playback may be common for certain types of media content,such as video content. For example, a user may sit back and watch videocontent without physically interacting with a mouse, keyboard,touchscreen, or other input device associated with a computing device.

In some embodiments, an abandonment indicator can be detected duringmedia playback, such as a user interaction with a computing device thatis detected prior to ceasing playback of the media content. Trackingmessages can be reduced, suppressed, or suspended until an abandonmentindicator is detected. After an abandonment indicator is detected, thesystem can quicken, release, or restart sending tracking messages to acollection system.

As used herein, in addition to its ordinary meaning, an “abandonmentindicator” refers to a type of event detected in association with acomputing device that is indicative of a likely or imminent abandonmentof media playback. Example abandonment indicators include events thatcorrespond to touch input (such as a swipe by a user on a touch screen),movement of a computing device, movement of an input device (such as amouse), keyboard input, interaction with an application (such as anintelligent personal assistant application), button selections (such asa home button push), voice input, or camera input. An input device of acomputing device, such as an input sensor, can generate output that canbe determined to constitute an abandonment indicator. Example inputdevices include a touch screen, a keyboard, a mouse, a gyroscope, anaccelerometer, a magnetometer, a camera, or a microphone. In the contextof a user consuming media content for an extended period of time, anyinput in any one of the devices could be first step of the user interminating the media playback. Thus, any user input can be consideredas an abandonment indicator.

As used herein, in addition to its ordinary meaning, “suppression” or“suppressing” of tracking messages refers to reducing, stopping, orsuspending the preparation or transmission of one or more trackingmessages. For example, suppressing tracking messages can includelowering a rate of transmitting tracking messages. In some embodiments,lowering the rate of transmitting tracking messages can include loweringthe normal rate of transmitting tracking messages by a fraction orpercentage, such as, ¾, ½, ¼, or any other rate change. A normal rate oftransmitting tracking messages can include, but is not limited to,sending a tracking message every minute. In the example, a lower ratefor the normal one-minute rate can be reduced to sending a trackingmessage every two minutes. In this example, if a video is less than twominutes, then a tracking message may not be sent according to thereduced rate for sending tracking messages. In other embodiments,suppression of tracking message can include stopping or suspending thetracking messages for a period of time.

The systems and techniques described herein may improve computertechnology. As described herein, some traditional systems for trackingconsumption of video content send heartbeat tracking messages at regularintervals during video playback. However, an aspect of at least one ofthe inventions disclosed herein includes the realization that suchtraditional, fixed-rate heartbeat tracking potentially can result in thesending of many unnecessary messages and thus can lead to increasedbandwidth usage since it is possible that many unnecessary trackingmessages are sent over a network for a single media item. Further,heartbeat tracking can result in greater use of computing resources bothfor the devices sending the tracking messages (such as client devices)and for the devices receiving the messages (such as server devices),such as battery or power usage, or processor usage. Inefficient powerusage in devices with batteries, such as mobile computing devices,drains those batteries.

Heartbeat tracking can also be inaccurate. For example, if the heartbeattracking interval is set for thirty seconds and the user stops mediaplayback before the thirty seconds, then the heartbeat tracking systemwill fail to track how much media content has been consumed. For sometraditional heartbeat tracking systems, smaller time intervals or moretracking messages can result in greater granularity of tracking but useseven more bandwidth or computing resources on either the client orserver side. Conversely, for some traditional heartbeat trackingsystems, larger time intervals or less heartbeat tracking messagesresults in more efficient bandwidth and resource usage but suffers thedrawback of having less granularity.

Accordingly, the systems and techniques described herein can incorporateintelligent tracking logic to suppress some tracking to conserve clientor server resources or to reduce network bandwidth. More efficient powerusage can result in longer battery life, which may result in a userbeing able to consume a greater amount of media content. Further, theintelligent tracking described herein can selectively provide greatergranularity of tracking than traditional tracking systems.

The systems and techniques described herein can be intrinsically tied tonetwork and/or computer technology because such solutions are related totracking of services or sites such as websites over a network. Forexample, the techniques described herein can cause or control thegeneration and sending of data, such as tracking messages, over anetwork. Example network data includes HTTP data and uniform resourceidentifier data (such as uniform resource locators (“URLs”)) that areintrinsically tied to network and/or computer technology.

II. Engagement Tracking Systems

FIG. 1 illustrates a computing environment 100 for implementing variousengagement tracking features, including some or all of the efficientengagement tracking features described herein. In the computingenvironment 100, an end user system 102A, 102B communicates over anetwork 108 with a site server 110 or a media content service 116. Theend user system 102A, 102B can include any form of computing device andmay be a desktop, laptop, smartphone, tablet, or the like. A browser 103or other application software installed in the end user system 102Aaccesses one or more pages 112 of a content site stored on the siteserver 110. The pages can include a media player for playing mediacontent. Further, the pages can be files that may be accessed remotelyand provided to the end user system 102A. Accordingly, the pages may beweb pages, documents (such as pdf documents), media content, videos,audio files, images, text, combinations of the same, or the like.

A host application 107 on the end user system 102B can access or playmedia content from the media content service 116. The site server 110 orthe media content service 116 may be a web server, an applicationserver, a database server, combinations of the same, or the like.Further, the network 108 can include a local area network (LAN), a widearea network (WAN), a company intranet, the public Internet,combinations of the same, or the like.

The end user systems 102A, 102B can include the trackers 106A, 106B,respectively. In some embodiments, the tracker 106A executes within thebrowser 103 or a media player executing on the browser 103. Further, thetracker 106A may be included within one or more tags, such as a datacollection tag, or may be implemented in an interpreted language or mayinclude instructions in an interpreted language, such as JavaScript®.Thus, the tracker 106A may be executed or updated without the need tocompile or recompile the instructions of the tracker 106A.

In other embodiments, the tracker 106B executes within the hostapplication 107, which may be or include a media player. For example,the tracker 106B may be a part of a tracking software development kit(SDK) that enables the tracker 106B to execute on the end user system102B.

The trackers 106A, 106B can receive input, such as events associatedwith the end user systems 102A, 102B. The input that the trackers 106A,106B can receive can be related to the playback of media content. Theplayback-related input can include one or more of a media contentidentifier, a playback identifier, a user identifier, a playbackposition, a media content length, or a state of playback (e.g.,“stopped,” “cancelled,” “complete,” or “playing”).

The trackers 106A, 106B can determine and send tracking messages to thecollection system 180. For example, based on the input received, thetrackers 106A, 106B can output one or more tracking messages associatedwith the media content.

The trackers 106A, 106B can include or communicate with one or morelisteners that receive the input events. A listener or event handler canreceive event notifications from one or more sources associated with theend user systems 102A, 102B. A source of events can include one or moreinput devices associated with the end user systems 102A, 102B. Forexample, a user, may interact with the end user systems 102A, 102B thatcauses the one or more input devices to generate events. The listenercan operate in a loop to receive event notifications continuously. Whenan input event notification is received, the listener can output theevent notification to the trackers 106A, 106B for processing. In someembodiments, the listener can implement one or more interfaces tocommunicate with the one or more sources of events.

The tracking messages from the end user systems 102A, 102B can bereceived, processed, or stored by the collection system 180. Trackingrelated data may be stored in the tracking data store 182. The trackingrelated data stored in the tracking data store 182 can include one ormore of a media content identifier, a playback identifier, a useridentifier, a playback position, a media content length, or a state ofplayback (e.g., “stopped,” “cancelled,” “complete,” or “playing”). Whilethe tracker 106A, 106B can be implemented by the end user system 102A,102B, in some embodiments, the tracker 106A, 106B can be implemented byanother system, such as the analytics system 130, which is separate fromthe end user system 102A, 102B.

A tag management system 140 can enable analytics users (describedherein) to configure the types of data tracked for a content siteprovided by the site server 110 or the host application 107, as well asanalyze and report on the tracking data. For instance, in someembodiments, the tag management system 140 can provide one or more userinterfaces that enable customization of collecting information aboutusers of the content site or the host application 107. This informationcan be obtained initially by one or more tags, which may be providedthrough a tag container 114 to the end user system 102A for execution inthe browser 103. Upon execution in the browser 103, the tag(s) cansupply tracking data to the analytics system 130 (optionally through thetag servers 120). Analytics users can subsequently query the interactiondata to obtain reports or other information about visitors to thecontent site or users of the host application 107. In some embodiments,tracking of media content engagement may not use tags or may not beconfigured through a tag management system.

As shown, one or more pages 112 of the content site can include a tagcontainer 114. The tag container 114 can be a universal tag that isinstalled or incorporated in one or more pages 112 in place of, orinstead of, incorporating numerous tags in each page. The tag container114 can communicate with the collection system 180 or with one or moredata collection tags implemented on one or more tag servers 120. Thedata collection tags can include third party tags provided by tagvendors that are different entities than an operator of, or provider of,the tag container 114. In some embodiments, the data collection tags caninclude instructions in an interpreted language, such as JavaScript®.Tags and tag containers are described in further detail in U.S. Pat No.8,805,946, titled “SYSTEM AND METHOD FOR COMBINING CONTENT SITE VISITORPROFILES,” which is incorporated by reference herein in its entirety.

The tag management system 140 can be used to manage the one or more tagsassociated with the pages 112. For instance, the tag management system140 can provide functionality for tag management users to select whichtags to associate with which one or more content pages or one or morecontent objects for a variety of vendor-specific processing purposes orcustomize the tags for particular pages. These purposes can includeobtaining analytics for data analysis or business intelligence, trackinguser engagements with media content, tracking affiliate activity withrespect to a content site, obtaining user data for displaying targetedads, obtaining user data for customizing search functionality or emailcampaigns targeted to the end users, obtaining user data forpersonalizing content of a content page, obtaining user data forintegration with social networking functionality, obtaining user datafor big data analysis, combinations of the same, or the like.

A tag management user system 104 can access the tag server 120 or theanalytics system 130 via the network 108. Like the end user system 102A,102B, the tag management user system 104 can include a browser 105 orother application software that can access network applications over thenetwork 108. The tag management user system 104 can also be any type ofcomputing device including, but not limited to, a desktop, laptop,tablet, smartphone, or the like. The tag management user system 104 canbe operated by tag management users such as marketing professionals,website operators, business users, operators of a content site or thesite server 110, or any other individual who uses tag objects or tags ordata obtained therefrom. Tag management users are not the end users of acontent site in certain embodiments. The tag management users can usethe tag management user system 104 to dynamically update the types ofdata tracked or analyzed for different visitors of a content site or forusers of a host application. In addition, the tag management user canuse the tag management user system 104 to customize tag objects or tagsfor particular content pages or content objects or for configuring thetracker 106A, 106B.

In FIGS. 2A and 2B, an example end user system 102 is depicted. The enduser system 102 can be the end user system 102A, 102B of FIG. 1. Asillustrated, the end user system 102 includes a media player 202. Themedia player 202 may be a host application or may be executed in abrowser. A user may initiate playback of media content in the mediaplayer 202. Turning to FIG. 2B, playback of media content, such as avideo, is shown in the media player 202. As illustrated, a userinteraction 206 may be detected by the end user system 102. For example,the user interaction 206 may be a touch interaction with a relatedvideos section 204 of the media player 202. The user interaction 206 mayindicate that a user has lost interest with the media content and thatthe user may stop their engagement with the media content, such as byselecting another media content, exiting the media player, or bystopping the playback o the media content. As described herein, the userinteraction 206 causes an event to be generated that may be determinedto correspond to or match an abandonment indicator. Further, a tracker106A, 106B or a tracking system may generate and send one or moretracking messages in response to the detection of the abandonmentindicator.

III. Engagement Tracking Processes

FIGS. 3A, 3B, and 3C depict different engagement tracking embodiments.The processes 300, 320, and 340 illustrate example modes of operation ofthe computing environment 100 and may be implemented by the variouscomponents shown in the computing environment 100. For convenience, theprocesses 300, 320, and 340 are described in the context of thecomputing environment 100, but may instead be implemented by othersystems described herein or other computing systems not shown. Theprocesses 300, 320, and 340 provide example approaches by whichabandonment-based engagement tracking can be implemented. Depending onthe embodiment, the processes 300, 320, and 340 may include fewer oradditional blocks and/or the blocks may be performed in order differentthan is illustrated.

In some embodiments, any of the processes 300, 320, and 340 can suppresstracking messages by reducing the rate of sending tracking messages. Forexample, tracking messages can be sent at a first tracking rate. Anexample first tracking rate can include sending tracking messages every5 seconds. The tracking rate can be reduced to a second tracking rate.An example second tracking rate can include sending tracking messagesevery 30 seconds instead of the first tracking rate for sending trackingmessages every 5 seconds. As described herein, an abandonment indicatorcan be detected. The tracking rate can then be increased to a rategreater than the second tracking rate. For example, in response to thedetection of an abandonment indicator, the tracking rate can beincreased to every 5 seconds (the first tracking rate) or any other ratethan that is greater than the second tracking rate of every 30 seconds.

Turning to FIG. 3A, an example engagement tracking process 300 is shown.At block 302, playback of media content is detected. For example, thetracker 106A, 106B or a tracking system detects playback of mediacontent. The tracker 106A, 106B can detect playback of media content ina media player. In some embodiments, a media player may notify thetracker 106A, 106B that playback has started. In other embodiments, thetracker 106A, 106B can detect a start event that is associated withplayback of the media content. After detection of playback, in someembodiments, the tracker 106A, 106B can transmit a tracking message thatplayback of the media content has begun.

At block 304, the metadata associated with playback of the mediacontent, which can include engagement or tracking data, is determined.For example, the tracker 106A, 106B can determine metadata associatedwith playback of the media content. Example metadata includes a mediacontent identifier, a playback identifier, a user identifier, a playbackposition, a media content length, a state of playback (e.g., “stopped,”“cancelled,” “complete,” or “playing”). Some or all of the metadata maybe transmitted in a tracking message.

A tracking message can be in various formats depending on theembodiment. In some embodiments, a tracking message may be the format ofan HTTP request. The tracking message can specify a URL of the datacollection server and can include parameters that include the metadataassociated with the playback of the media content. An example HTTPtracking message is:https://[data_collection_server_domain_name].com/collect?event_type=video-play&video_name=example+content.mov&video-state=playing&video-position=330&video-length=600.

The tracking message can identify the type of tracking (in the example,video playback), a media content identifier (in the example, the videoname), a playback state (in the example, a playing state), a playbackposition (in the example, 330 seconds), and a length of the mediacontent (in the example, 600 seconds or 10 minutes). Depending on theembodiment, the tracking message may include more or less informationthan the foregoing example. For example, a media content “start”tracking message may not include a playback position since the currentposition may be assumed to be zero or a media content “complete”tracking message may not include a playback position since the currentposition may be assumed to be the length of the media content. In otherembodiments, the tracking message can include a JavaScript® ObjectNotation (JSON) data format for transmitting metadata associated withtracking playback of media content.

At block 306, an event is identified or received. For example, thetracker 106A, 106B identifies or receives one or more events generatedby the end user system 102A, 102B. For example, the tracker 106A, 106Bor another process or application can activate a listener that receivesevents generated by the end user system 102A, 102B. The received eventscan represent a change in the state of the end user system 102A, 102B,such as any type of received user input or any change in state of anapplication (such as the starting or stopping of the application) on theend user system 102A, 102B.

At block 308, it can be determined whether the playback of media contentis complete. For example, the tracker 106A, 106B can determine ifplayback of the media content is complete. The tracker 106A, 106B canreceive an event indicating that playback is complete or can receive amessage from the media player that playback has completed. In otherembodiments, the tracker 106A, 106B can query the media player todetermine if playback is complete. As illustrated in the engagementtracking process 300, if content playback is complete, then the tracker106A, 106B can send a playback complete tracking message to thecollection system 180. If playback is not complete, the tracker 106A,106B proceeds to block 310.

In some situations, an abandonment indicator may not be detected duringplayback. For example, the tracker 106A, 106B may not detect anyabandonment indicators during playback. Therefore, the tracker 106A,106B can suppress preparing or sending tracking messages, which mayadvantageously reduce network bandwidth or may conserve computingresources. In some embodiments, the tracker 106A, 106B has variousmodes, which can include a tracking suppression mode that suppressespreparing or transmitting one or more tracking messages. By default, thetracker 106A, 106B may start in tracking suppression mode. Thus, in somecases, it is possible for the tracker 106A, 106B to remain in a trackingsuppression mode throughout an entire media playback session. Thus,while in suppression mode, some tracker embodiments 106A, 106B send areduced number of tracking messages to the collection system 180 (suchas a single playback start tracking message and a single playback endtracking message) that accurately reflects user engagement with themedia content. For example, some tracker embodiments 106A, 106B can havea normal rate of sending tracking messages. As described herein, whilein suppression mode, the tracker embodiments 106A, 106B can have areduced rate of sending tracking messages.

At block 310, it can be determined if there is an abandonment indicator.For example, the tracker 106A, 106B determines if the event correspondsto the abandonment indicator. The tracker 106A, 106B can determinewhether the event matches one or more abandonment indicators. Thetracker 106A, 106B can determine a match or not by comparing the eventto a collection of abandonment indicator types. As described herein,example abandonment indicator types include event types corresponding toa user moving a mouse, touch input, moving a computing device,activating an intelligent personal assistant application, providingvoice input, or touching a home button on the computing device. In someembodiments, the tracker 106A, 106B compares the event with a list ofabandonment indicator types.

In some situations, the tracker 106A, 106B receives events that do notmatch or correspond to an abandonment indicator, such as any number ofnon-abandonment events that may be generated by processes running on theend user system 102A, 102B. If the tracker 106A, 106B determines thepresence of an abandonment indicator, then the tracker proceeds to block312 to transmit a tracking message or disables the tracking suppressionmode. However, if there is not an abandonment indicator, the tracker106A, 106B may enable or remain in the tracking suppression mode thatsuppresses preparing or sending tracking messages to a collectionsystem. In the tracking suppression mode, the tracker 106A, 106B maycontinue to listen for events that correspond to an abandonmentindicator, such as by returning to block 306.

In some embodiments, the tracker 106A, 106B uses conditional logic fordetermining whether an event corresponds to an abandonment indicator.The tracker 106A, 106B can include instructions customized for detectingabandonment indicators based on the type of end user system 102A, 102B.For example, the instructions for detecting abandonment indicators fordesktop computer devices and can be different from instructions that arecustomized for detecting abandonment indicators for mobile devices.Thus, the tracker 106A, 106B can apply different abandonment indicatorlogic depending on the type of end user system 102A, 102B or particularhardware of the end user system 102A, 102B. In some embodiments, theabandonment indicator logic can include thresholds for determiningwhether an abandonment indicator is present. The abandonment indicatorlogic may include thresholds for certain user interactions, such as userswipes or touches, to last a threshold amount of time to be consideredan abandonment indicator.

For example, the abandonment logic may determine the presence of anabandonment indicator if the touch user interaction is greater than athreshold amount of time, such as 10 milliseconds, 50 milliseconds, 100milliseconds, or 1 second. Thus, the abandonment indicator logic candistinguish between inadvertent user input and more deliberate userinput that is indicative potential abandonment. Further, the abandonmentindicator logic can distinguish between types of events or user input.For example, user input corresponding to a user navigating to adifferent location within the media content may not be classified as anabandonment indicator; however, user input corresponding to a userbrowsing other content in the media player during media playback may beclassified as an abandonment indicator, since browsing of other contentmay be indicative that user may proximately cease playback of the mediacontent.

In some embodiments, the tracker 106A, 106B uses dynamic logic fordetermining whether an event corresponds to an abandonment indicator.The abandonment indicator logic for detecting whether an eventcorresponds to an abandonment indicator can be remotely updated by anexternal server in either the browser or the host application context.Remote transmission of conditional logic is described in further detailin U.S. Pat. No. 9,363,311, titled “DELIVERY OF INSTRUCTIONS IN HOSTAPPLICATIONS,” which is incorporated by reference herein in itsentirety.

At block 312, a tracking message is prepared or sent. For example, thetracker 106A, 106B prepares or transmits a tracking message to thecollection system 180. As described herein, the tracking message caninclude metadata associated with the playback of the media content, suchas by including a playback position of the media content. Further, atracking message can be sent over the network in an HTTP request format.In some embodiments, after detecting an abandonment indicator andtransmitting a tracking message, the tracker 106A, 106B can enable ahigher rate mode and can send tracking messages at a higher rate to thecollection system 180.

Turning to FIG. 3B, another example engagement tracking process 320 isshown. The engagement tracking process 320 of FIG. 3B may be a variationof or similar to the engagement tracking process 300 of FIG. 3A. Forexample, some blocks of the engagement tracking process 320 of FIG. 3Bmay similar to blocks of the engagement tracking process 300 of FIG. 3A.

At block 305, media playback is detected or tracking of media playbackis initialized. The initialization of the tracking of media playback caninclude the tracker 106A, 106B detecting content playback or determiningcontent metadata, which can be similar to blocks 302 or 304 of FIG. 3A.

Blocks 306, 308, 310, and 312 of FIG. 3B may be similar to blocks 306,308, and 310 of FIG. 3A. For example, the tracker 106A, 106B identifiesor receives one or more events generated by the end user system 102A,102B (block 306); determines if playback of the media content iscomplete (block 308); determines if the event corresponds to theabandonment indicator (block 310); and prepares or transmits a trackingmessage to the collection system 180 (block 312). At block 308, ifcontent playback is complete, the tracker 106A, 106B proceeds to block314 transmits a final playback complete tracking message to thecollection system 180, as described herein.

At block 316, multiple abandonment indicators can be detected. Forexample, the tracker 106A, 106B determines if there are multipleabandonment indicators within a threshold period of time. The tracker106A, 106B, using the listener, can determine if there are multipleevents that correspond to an abandonment indicator. The tracker 106A,106B, within a configurable period of time, can determine if a thresholdnumber of abandonment indicators are detected. For example, the tracker106A, 106B, can determine if a threshold number of abandonmentindicators are detected within a period of time, such as thirty seconds.Determining if multiple abandonment indicators are present can include:receiving two or more events within a threshold period of time;determining a subset of the events that match an abandonment indicator;and determining that a quantity of the events matching an abandonmentindicator exceeds a threshold. The threshold number of abandonmentindicators may indicate an increased likelihood that the user is closeto ending their engagement with the media content. Thus, the tracker106A, 106B proceeds to block 318 where multiple abandonment indicatorshave been determined. If multiple abandonment indicators are notdetermined, the tracker 106A, 106B proceeds to block 306 to continue inthe loop of blocks 306, 308, 310, 312, or 316. The loop of blocks 306,308, and 310 may correspond to a tracking suppression mode of thetracker 106A, 106B that checks for single abandonment indicators andtransmits tracking messages at a reduced rate or suppresses all trackingmessages where applicable until a playback complete event is detected.

At block 318, the tracking mode can be updated. For example, wheremultiple abandonment indicators have been determined, the tracker 106A,106B updates the tracking mode. An example tracking mode includes aheartbeat tracking mode. In some embodiments, the heartbeat trackingmode uses a normal or reduced time interval for sending trackingmessages. The time interval or the “rate” may be predetermined or may bedynamically determined depending on the embodiment. In the heartbeattracking mode, the tracker 106A, 106B repeatedly transmits (such asafter every time interval that has elapsed), to the collection system180, a tracking message that includes an updated playback position ofthe media content until playback of the media content ends. Thus, it maybe acceptable for the tracker 106A, 106B to enter a heartbeat trackingmode and use greater computing resources and bandwidth for a shortperiod of time since it has been determined that a user will possiblystop playback soon based on the detection of multiple abandonmentindicators. In some embodiments, the heartbeat tracking mode ismaintained until playback of the media content ends or a condition issatisfied. The condition can indicate that one or more tracking messagesshould be suppressed (e.g., a period of time elapses without detectingone or more abandonment indicators), such as by enabling or re-enablinga tracking suppression mode.

Turning to FIG. 3C, yet another example engagement tracking process 340is shown. The engagement tracking process 340 of FIG. 3C may be avariation of or similar to the engagement tracking processes 300 of FIG.3A, 320 of FIG. 3B. For example, some blocks of the engagement trackingprocess 340 of FIG. 3C may similar to blocks of the engagement trackingprocess 300 of FIG. 3A, 320 of FIG. 3B.

Block 305 of FIG. 3C may be similar to block 305 of FIG. 3B. The tracker106A, 106B can detect playback of media content. Blocks 306, 308, 310,and 312 of FIG. 3C may be similar to blocks 306, 308, and 310 of FIG.3A. For example, the tracker 106A, 106B identifies or receives one ormore events generated by the end user system 102A, 102B (block 306);determines if playback of the media content is complete (block 308);determines if the event corresponds to the abandonment indicator (block310); and prepares or transmits a tracking message to the collectionsystem 180. At block 308, if content playback is complete, the tracker106A, 106B proceeds to block 314 and transmits a playback completetracking message to the collection system 180, as described herein.

At block 318, the tracking mode can be updated. For example, afterdetermining the presence of an abandonment indicator and transmitting atracking message, the tracker 106A, 106B updates the tracking mode. Asdescribed herein, an example tracking mode includes a heartbeat trackingmode. The tracker 106A, 106B can remain in the heartbeat tracking mode(repeatedly sending tracking messages) until playback of the mediacontent ends or a condition to re-enable the tracking suppression modeis satisfied. The condition can include determining whether anabandonment indicator is present or not within a time interval.

At block 321, the presence of an abandonment indicator can bedetermined. For example, the tracker 106A, 106B can remain in theheartbeat tracking mode while the presence of abandonment indicators isdetermined at block 321. The tracker 106A, 106B may continue sendingtracking messages in a loop at a given time interval (e.g., every 15seconds) while the presence of one or more abandonment detectors isdetermined within a threshold period of time (e.g., every 30 seconds).If, after a threshold period of elapsed time, the tracker 106A, 106B hasnot received an event in the elapsed time or has not received an eventthat matches an abandonment indicator in the elapsed time, the tracker106A, 106B proceeds to block 322 to update the tracking mode.

At block 322, the tracking mode can be updated. For example, the tracker106A, 106B can enter a different tracking mode. The tracker 106A, 106Bcan disable the heartbeat tracking mode and enable (or re-enable) thetracking suppression mode and return to block 306 to continue checkingfor events. As described herein, the tracker 106A, 106B may efficientlysend tracking message in response to detection of abandonment indicatorsand reduce network bandwidth or conserve computing resources.

IV. Engagement Tracking Examples

In FIGS. 4A and 4B, example heartbeat tracking is depicted. In FIG. 4A,the network environment 400 can include an end user system 102 and acollection system 180. As shown, the end user system 102 can transmittracking messages 404A-404F to the collection system 180 between themedia playback starting state 402 and the media playback ending state406. The end user system 102 can send tracking messages at 30 secondintervals. However, as shown, the preparation and transmission ofmultiple tracking messages 404A-404F at regular intervals in a heartbeatmode may be resource intensive and may result in increased networkbandwidth.

In some embodiments, heartbeat tracking messages can be sent at setintervals, such as every 5, 10, 15, 20, or 30 seconds, for example. Inother embodiments, the intervals for heartbeat tracking can bedetermined based on configurable percentages or the length of the mediacontent. For example, a configurable percentage could be ten percent.Thus, for a ten-minute video, the system can determine to send aheartbeat tracking every minute. With percentage heartbeat tracking,longer media content has longer timer intervals and shorter mediacontent has shorter time intervals for the same percentage. Determininga time interval for heartbeat tracking can include: determining aduration of the media content, and calculating the time interval from apercentage value and the amount of time. In some embodiments, the systemcan determine the intervals from a remaining amount of time of the mediacontent, such as the remaining time that is left of the media contentduring playback. Thus, if there is five minutes remaining of playbackfor a video, and the percentage is set to twenty percent, the timeinterval for sending tracking messages can be determined to be everyminute for the remainder of the media content.

FIG. 4B may be similar to FIG. 4A. The network environment 420 caninclude an end user system 102 and a collection system 180 where the enduser system 102 is configured for heartbeat tracking. In the example,the heartbeat tracking may be set to 30 second intervals. However, asshown, the media playback ends before 30 seconds of media playback haselapsed. Thus, the heartbeat tracking in this example would fail toaccurately track the playback of the media content since playback endedbefore the heartbeat time interval had elapsed and before a trackingmessage was scheduled to be sent.

In FIGS. 5A and 5B, example abandonment-based engagement tracking isdepicted. In FIG. 5A, the network environment 500 can include an enduser system 102 and a collection system 180. As shown, after the mediaplayback starting state 502, an abandonment indicator 504 is detectedbefore the 3:00 minute mark. Following the detection of the abandonmentindicator 504, the end user system 102 is configured to prepare ortransmit a tracking message 506 to the collection system 180. Thetracking message 506 can report the playback position of the mediacontent, other tracking information, or other metadata. Thus, the enduser system 102 is configured to efficiently send a minimal number oftracking messages based on intelligent detection of abandonmentindicators. As shown, in contrast to the heartbeat tracking in FIG. 4Athat used substantial computing resources and network bandwidth togenerate and send the tracking messages in 404A-404F, the abandonmentbased engagement tracking shown in FIG. 5A sent a reduced number oftracking messages and conserved computing resources and resulted inreduced network bandwidth usage. The embodiment of FIG. 5A maycorrespond to the engagement tracking process 300 of FIG. 3A.

FIG. 5B may be similar to FIG. 5A. The network environment 520 caninclude an end user system 102 and a collection system 180 where the enduser system 102 is configured for a type of abandonment based engagementtracking. In the example, an abandonment indicator 524 is detectedbefore 30 seconds has elapsed. The end user system 102 is configuredwith abandonment based engagement tracking. Thus, following thedetection of the abandonment indicator 524, the end user system 102 isconfigured to transmit a tracking message 526 to the collection system180. As shown, in contrast to the heartbeat tracking in FIG. 4B thatfailed to accurately report the user engagement with the media content,the abandonment based engagement tracking shown in FIG. 5B operated withgreater granularity than the heartbeat tracking by being able to detectthe abandonment indicator 524 and to transmit the tracking message 526without relying on a set heartbeat tracking interval. The embodiment ofFIG. 5B may correspond to the engagement tracking process 300 of FIG.3A.

In FIGS. 6A and 6B, additional abandonment-based engagement trackingexamples are depicted. In FIG. 6A, the network environment 500 caninclude an end user system 102 and a collection system 180. The end usersystem 102 is configured with a type of abandonment based engagementtracking. As shown, after the media playback state 602, an abandonmentindicator 604A is detected. Following the detection of the abandonmentindicator 604A, the end user system 102 is configured to transmit atracking message 606A to the collection system 180. The end user system102 is configured to detect multiple abandonment indicators 604B and604C within a threshold period of time. In response to the detection ofthe multiple abandonment indicators 604B and 604C, the end user system102 is further configured to update the state of the tracking mode 608.The updated tracking mode can be a heartbeat tracking mode where the enduser system 102 is configured to send the heartbeat tracking messages606B-606D until the media playback ending state 610. The embodiment ofFIG. 6A may correspond to the engagement tracking process 320 of FIG.3B.

FIG. 6B may be similar to FIG. 6A. The network environment 520 caninclude an end user system 102 and a collection system 180 where the enduser system 102 is configured with a type of abandonment basedengagement tracking. As shown, after the media playback state 602, anabandonment indicator 604A is detected. Following the detection of theabandonment indicator 604A, the end user system 102 is configured totransmit a tracking message 606A to the collection system 180. The enduser system 102 is configured to update the state of the tracking mode622 to a heartbeat tracking mode. In the heartbeat tracking mode, theend user system 102 is further configured to send the heartbeat trackingmessages 606B-606D while the abandonment indicators 604B and 604C arebeing detected. As shown, since an abandonment indicator is not detectedfor a threshold period of time, the end user system 102 is configured toupdate the tracking mode state 624 to a tracking suppression mode wherethe end user system 102 is configured to listen for abandonmentindicators and to not send tracking messages until an abandonmentindicator is detected. The embodiment of FIG. 6B may correspond to theengagement tracking process 340 of FIG. 3C.

V. Example Implementation Mechanisms

FIG. 7 illustrates a computer system 700 usable to implement one or moreof the systems (for instance, the end user system 102A, 102B, the tagmanagement user system 104, analytics system 130, the tag managementsystem 140, the collection system 180) servers (for instance, the siteserver 110 or tag server 120), or services (for instance, the mediacontent service 116) within the computing environment 100 of FIG. 1.

As shown in FIG. 7, the computer system 700 can include (i) one or morehardware processors (CPUs) 710, (ii) an input/output device(s) 720configured to allow users to input and output information and interactwith the computer system 700 as well as transfer and receive data, (iii)one or more read only memory (ROMs) devices 730 or equivalents toprovide nonvolatile storage of data, programs, (iv) one or more displays750 such as a computer monitor or other display device, (v) one morenetwork connections 740 and associated network interfaces 742 configuredto allow the system 700 to connect to other systems, servers or portabledevices, as well as one or more memory spaces 760 and database(s) 790.Database(s) 790 may be further divided or distributed as one or moresub-databases 790 a-790 n, with the sub-databases storing feature orfunction specific information associated with a particular feature orfunction. The various components shown in FIG. 7 may be incorporated inserver(s) 770. It is noted that the various components shown in FIG. 7,including database(s) 790, are typically included as part of server(s)770, however, they may be external to server(s) 770 in some embodiments.For example, database(s) 790 may be external to server(s) 770 and may bepart of a separate database server system or networked database system.In some instances, the system may not be a server but rather a computingdevice like a desktop computer or mobile device.

One or more memory spaces 760 may comprise DRAM, SRAM, FLASH, hard diskdrives or other memory storage devices, such as media drives 780,configured to store operating systems 762, application programs or data764, and one or more memory spaces 760 may be shared with, distributedwith or overlap with the memory storage capacity of database(s) 790. Insome embodiments, one or more memory spaces 760 may include database(s)790 or in some embodiments database(s) 790 may include data 768 as shownin memory space 760. Data stored in memory space 760 or database(s) 790may include information, such as tag management system information orother types of data described herein.

VI. Additional Embodiments and Terminology

Many other variations than those described herein will be apparent fromthis disclosure. For example, depending on the embodiment, certain acts,events, or functions of any of the algorithms described herein can beperformed in a different sequence, can be added, merged, or left outaltogether (e.g., not all described acts or events are necessary for thepractice of the algorithms). Moreover, in certain embodiments, acts orevents can be performed concurrently, e.g., through multi-threadedprocessing, interrupt processing, or multiple processors or processorcores or on other parallel architectures, rather than sequentially. Inaddition, different tasks or processes can be performed by differentmachines or computing systems that can function together.

While the present disclosure sometimes discusses engagement tracking inthe video playback context, the embodiments, systems, methods, andnon-transitory computer readable media described herein may be appliedto engagement tracking regarding the playback of any type of mediacontent. Example media content can include, but is not limited to, audiofiles or video files, such as podcasts, news programs, musical works,television programs, video clips, movies, or other multimedia content.Further, while the present disclosure often discusses advantages ofabandonment-based engagement tracking as including reduced computer andnetwork resource usage, other embodiments of systems, methods, andnon-transitory computer readable media described herein may notnecessarily result in reduced computer or network usage and may haveother advantages, as described herein.

In some embodiments, one or more parts of or all of the analytics system130 or tag server 120 can be implemented in a distributed cloud platformthat provides redundant or geographically dispersed access. Although notillustrated herein, one such example implementation is described andillustrated with respect to FIG. 25 of U.S. Pat. No. 8,805,946, titled“SYSTEM AND METHOD FOR COMBINING CONTENT SITE VISITOR PROFILES,” whichwas previously incorporated by reference herein in its entirety.

Although the network 108 is shown as one connected network, the network108 can be subdivided into one or more separate networks which may notdirectly communicate with one another. For example, the analytics system130 can communicate with the tag management user system 104 via aseparate and different network from the network that the tag server 120uses to communicate with the end user system 102A, 102B.

The various illustrative logical blocks, modules, and algorithm stepsdescribed in connection with the embodiments disclosed herein can beimplemented as electronic hardware, computer software, or combinationsof both. To clearly illustrate this interchangeability of hardware andsoftware, various illustrative components, blocks, modules, and stepshave been described above generally in terms of their functionality.Whether such functionality is implemented as hardware or softwaredepends upon the particular application and design constraints imposedon the overall system. The described functionality can be implemented invarying ways for each particular application, but such implementationdecisions should not be interpreted as causing a departure from thescope of the disclosure.

The various illustrative logical blocks and modules described inconnection with the embodiments disclosed herein can be implemented orperformed by a machine, such as a general purpose processor, a digitalsignal processor (DSP), an application specific integrated circuit(ASIC), a field programmable gate array (FPGA) or other programmablelogic device, discrete gate or transistor logic, discrete hardwarecomponents, or any combination thereof designed to perform the functionsdescribed herein. A general purpose processor can be a microprocessor,but in the alternative, the processor can be a controller,microcontroller, or state machine, combinations of the same, or thelike. A hardware processor can include electrical circuitry or digitallogic circuitry configured to process computer-executable instructions.In another embodiment, a processor includes an FPGA, other programmabledevice that performs logic operations without processingcomputer-executable instructions. A processor can also be implemented asa combination of computing devices, e.g., a combination of a DSP and amicroprocessor, a plurality of microprocessors, one or moremicroprocessors in conjunction with a DSP core, or any other suchconfiguration. A computing environment can include any type of computersystem, including, but not limited to, a computer system based on amicroprocessor, a mainframe computer, a digital signal processor, aportable computing device, a device controller, or a computationalengine within an appliance, to name a few.

The steps of a method, process, or algorithm described in connectionwith the embodiments disclosed herein can be embodied directly inhardware, in a software module stored in one or more memory devices andexecuted by one or more processors, or in a combination of the two. Asoftware module can reside in RAM memory, flash memory, ROM memory,EPROM memory, EEPROM memory, registers, hard disk, a removable disk, aCD-ROM, or any other form of non-transitory computer-readable storagemedium, media, or physical computer storage known in the art. An examplestorage medium can be coupled to the processor such that the processorcan read information from, and write information to, the storage medium.In the alternative, the storage medium can be integral to the processor.The storage medium can be volatile or nonvolatile. The processor and thestorage medium can reside in an ASIC.

Conditional language used herein, such as, among others, “can,” “might,”“may,” “e.g.,” and the like, unless specifically stated otherwise, orotherwise understood within the context as used, is generally intendedto convey that certain embodiments include, while other embodiments donot include, certain features, elements or states. Thus, suchconditional language is not generally intended to imply that features,elements or states are in any way required for one or more embodimentsor that one or more embodiments necessarily include logic for deciding,with or without author input or prompting, whether these features,elements or states are included or are to be performed in any particularembodiment. The terms “comprising,” “including,” “having,” and the likeare synonymous and are used inclusively, in an open-ended fashion, anddo not exclude additional elements, features, acts, operations, and soforth. Also, the term “or” is used in its inclusive sense (and not inits exclusive sense) so that when used, for example, to connect a listof elements, the term “or” means one, some, or all of the elements inthe list. Further, the term “each,” as used herein, in addition tohaving its ordinary meaning, can mean any subset of a set of elements towhich the term “each” is applied.

While the above detailed description has shown, described, and pointedout novel features as applied to various embodiments, it will beunderstood that various omissions, substitutions, and changes in theform and details of the devices or algorithms illustrated can be madewithout departing from the spirit of the disclosure. As will berecognized, certain embodiments described herein can be embodied withina form that does not provide all of the features and benefits set forthherein, as some features can be used or practiced separately fromothers.

What is claimed is:
 1. A method of efficiently tracking video contentplayback with reduced computer network usage, the method comprising:under control of a physical user computing device comprising one or morehardware processors: detecting, in a media player of the physical usercomputing device, a playback of video content; activating a listenerconfigured to receive one or more events from the physical usercomputing device; receiving, from the listener, a first event generatedby the physical user computing device; determining that the first eventdoes not match one or more abandonment indicators by comparing the firstevent to each indicator type of a plurality of abandonment indicatortypes; in response to determining that the first event does notcorrespond to the one or more abandonment indicators, enabling atracking suppression mode that suppresses transmitting trackingmessages; receiving, from the listener, a second event generated by aninput sensor of the physical user computing device, wherein the inputsensor generates the second event in response to a user interaction withthe physical user computing device; determining metadata associated withthe playback of the video content, the metadata comprising a playbackposition of the video content; determining that the second event matchesthe one or more abandonment indicators by comparing the second event toeach indicator type of the plurality of abandonment indicator types; andin response to determining that the second event matches the one or moreabandonment indicators, disabling the tracking suppression mode,transmitting, to an external collection server, a tracking messagecomprising the metadata, and initiating a heartbeat tracking mode; inresponse to initiating the heartbeat tracking mode, retrieving a timeinterval, and repeatedly transmitting, to the external collectionserver, a respective tracking message comprising an updated playbackposition of the video content, after the time interval has elapsed,until the playback of the video content ends or a condition to re-enablethe tracking suppression mode is satisfied.
 2. The method of claim 1,further comprising: determining, after a threshold period of elapsedtime, that a third event has not been received in the elapsed time orthat the third event matching the one or more abandonment indicators hasnot been received in the elapsed time; and in response to determiningthat the third event has not been received in the elapsed time or thatan event matching the one or more abandonment indicators has not beenreceived in the elapsed time, re-enabling the tracking suppression modethat suppresses transmitting tracking messages.
 3. The method of claim1, wherein the plurality of abandonment indicator types comprise atleast one of: movement of the physical user computing device, akeystroke, touch input, voice input, button selection, or interactionwith an application.
 4. The method of claim 1, wherein enabling thetracking suppression mode that suppresses transmitting tracking messagesincludes lowering a rate of transmitting tracking messages.
 5. A methodcomprising: under control of a physical computing device comprising oneor more hardware processors: transmitting, to a physical user computingdevice, a data collection tag embedded within a first page, the datacollection tag comprising instructions configured to at least: detect,in a media player of the physical user computing device, a playback ofmedia content; receive an event generated by the physical user computingdevice; determine metadata associated with the playback of the mediacontent, the metadata comprising a playback position of the mediacontent; determine that the event matches one or more abandonmentindicators by comparing the event to each indicator type of a pluralityof abandonment indicator types; and in response to determining that theevent matches the one or more abandonment indicators, transmit, to anexternal collection server, a tracking message comprising the metadata.6. The method of claim 5, wherein the instructions comprise JavaScript®.7. The method of claim 5, wherein the data collection tag is furtherconfigured to at least: receive a plurality of events within a thresholdperiod of time; determine, from the plurality of events, that each eventof a subset of events matches an abandonment indicator; determine that aquantity of the subset of events exceeds an abandonment threshold; andin response to determining that the quantity of the subset of eventsexceeds the abandonment threshold: repeatedly transmit, to the externalcollection server, a respective tracking message comprising an updatedplayback position of the media content, after a time interval haselapsed, until the playback of the media content ends or a condition tosuppress transmitting one or more tracking messages is satisfied.
 8. Themethod of claim 5, wherein the data collection tag is further configuredto at least: determine a duration of the media content; calculate a timeinterval from a percentage value and an amount of time; and repeatedlytransmit, to the external collection server, a respective trackingmessage comprising an updated playback position of the media content,after the time interval has elapsed, until the playback of the mediacontent ends or a condition to suppress transmitting one or moretracking messages is satisfied.
 9. The method of claim 8, wherein theduration comprises a remaining amount of time for the playback of themedia content.
 10. The method of claim 5, wherein the plurality ofabandonment indicator types comprise at least one of: movement of thephysical user computing device, a keystroke, touch input, voice input,button selection, or interaction with an application.
 11. A systemcomprising: non-transitory physical computer storage; and a computerhardware processor in a physical user computing device, the computerhardware processor being in communication with the non-transitoryphysical computer storage and configured to: detect, in a media playerof the physical user computing device, a playback of media content;receive an event generated by the physical user computing device;determine metadata associated with the playback of the media content,the metadata comprising a playback position of the media content;determine that the event matches one or more abandonment indicators bycomparing the event to each indicator type of a plurality of abandonmentindicator types; and in response to determining that the event matchesthe one or more abandonment indicators, transmit, to an externalcollection server, a tracking message comprising the metadata.
 12. Thesystem of claim 11, wherein the computer hardware processor is furtherconfigured to: receive a plurality of events within a threshold periodof time; determine, from the plurality of events, that each event of asubset of events matches an abandonment indicator; determine that aquantity of the subset of events exceeds an abandonment threshold; andin response to determining that the quantity of the subset of eventsexceeds the abandonment threshold: repeatedly transmit, to the externalcollection server, a respective tracking message comprising an updatedplayback position of the media content, after a time interval haselapsed, until the playback of the media content ends or a condition tosuppress transmitting one or more tracking messages is satisfied. 13.The system of claim 11, wherein the computer hardware processor isfurther configured to: determine a duration of the media content;calculate a time interval from a percentage value and an amount of time;and repeatedly transmit, to the external collection server, a respectivetracking message comprising an updated playback position of the mediacontent, after the time interval has elapsed, until the playback of themedia content ends or a condition to suppress transmitting one or moretracking messages is satisfied.
 14. The system of claim 13, wherein theduration comprises a remaining amount of time for the playback of themedia content.
 15. The system of claim 11, wherein the plurality ofabandonment indicator types comprise at least one of: movement of thephysical user computing device, a keystroke, touch input, voice input,button selection, or interaction with an application.